<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Model\Role;
use App\Http\Model\Permission;
use App\Http\Model\Role_per;

class RoleController extends Controller
{
    /**
     * 角色列表
     *
     * @return 角色列表页
     */
    public function index()
    {
        //
        $data = Role::get();
        return view('admin.role.index',compact('data'));
    }

    /**
     * 角色添加
     *
     * @return 角色添加页面
     */
    public function create()
    {
        //
        return view('admin.role.create');
    }

    /**
     * 角色添加动作
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
        $data = $request->except('_token');
        $res = Role::create($data);
        if ($res) {
            return redirect('admin/role');
        }else{
            return back()->with('errors','添加失败,请重新添加');
        }
    }

    /**
     * 角色授权
     *
     * @param  int  $id
     * @return 授权页面
     */
    public function show($id)
    {
        //1.获取当前角色
        $role = Role::find($id);

        //2.获取所有权限
        $pers = Permission::all();

        //获取当前角色的权限
        $per = \DB::table('sad_permission_role')->where('rid',$id)->lists('pid');

        //3.授权页面
        return view('admin.role.auth',compact('role','pers','per'));

    }

    /**
     * 角色授权动作
     *
     * @param  int  $id
     */
    public function auth(Request $request)
    {
        $rid = $request->rid;
        $pid = $request->pid;

        foreach ($pid as $key => $value) {
            \DB::table('sad_permission_role')->insert(['rid'=>$rid,'pid'=>$value]);
        }
    }
    /**
     * 角色修改页面
     *
     * @param  int  $id
     * @return 角色修改页面
     */
    public function edit($id)
    {
        //
        $data = Role::find($id);
        return view('admin.role.edit',compact('data'));
    }

    /**
     * 角色修改
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     */
    public function update(Request $request, $id)
    {
        //
        $role = Role::find($id);
        $res = $role -> update($request->except('_token'));
        // dd($res);
         if ($res) {
            return redirect('admin/role');
        }else{
            return back()->with('errors','修改失败,请重新修改');
        }
        
    }

    /**
     * 角色删除
     *
     * @param  int  $id
     */
    public function destroy($id)
    {
        //
        $role = Role::find($id);
        $res = $role -> delete();
         if ($res) {
            $data = [
                'status' => 0,
                'msg' => '删除成功'
            ];
        }else{
             $data = [
                'status' => 1,
                'msg' => '删除失败'
            ];
        }
        return $data;
    }

    
}
